/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.edu.itschapala.sistemas.septimo.control;

import java.util.ArrayList;
import java.util.List;
import mx.edu.itschapala.sistemas.septimo.modelo.Cliente;
import mx.edu.itschapala.sistemas.septimo.vista.enumeracion.TipoBusqueda;
import static mx.edu.itschapala.sistemas.septimo.vista.enumeracion.TipoBusqueda.CONTIENE;
import static mx.edu.itschapala.sistemas.septimo.vista.enumeracion.TipoBusqueda.INICIA;

/**
 *
 * @author Estudiante
 */
public class ClienteLnLista implements ClienteLnLocal{
  
	private List<Cliente> lista = new ArrayList<Cliente>();
	
	public void registrar(Cliente cliente){
	lista.add(cliente); 
	}

	public void modificar(Cliente cliente){
	
		int pos=-1;
		for(int x=0; x<lista.size();x++){
			if(lista.get(x).getId()==cliente.getId()){
				pos=x;
			}
		}
		if(pos!=-1){
			 lista.set(pos,cliente);
		}
	}

	public void eliminar(Cliente cliente){
		int pos=-1;
		for(int x=0; x<lista.size();x++){
			if(lista.get(x).getId()==cliente.getId()){
				pos=x;
			}
		}
		if(pos!=-1){
			lista.remove(pos);
		}
	}

	public Cliente buscarPorCodigo(int id){
		int pos=-1;
		for(int x=0; x<lista.size();x++){
			if(lista.get(x).getId()==id){
				pos=x;
			}
		}
		if(pos!=-1){
			return lista.get(pos);
		}else{
			return null;
		}
	}

	public List<Cliente> getTodos(){
		
		return lista;
	}

    @Override
    public List<Cliente> getPorNombre(String Nombre, TipoBusqueda criterio) {
        List<Cliente> tmp=new ArrayList<Cliente>();
        switch(criterio){
            case INICIAC:
            for(Cliente p:lista){
            if(p.getnombre().startsWith(Nombre)){
                tmp.add(p);
            }
        }
                break;
            case CONTIENEC:
                 for(Cliente p:lista){
            if(p.getnombre().contains(Nombre)){
                tmp.add(p);
            }
        }
                break;
        }
        return tmp;
    }

    
}
